package com.akk.module.app.entity;

import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;
@Component
public class AppUserGradeExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AppUserGradeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andUserGradeIdIsNull() {
            addCriterion("user_grade_id is null");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdIsNotNull() {
            addCriterion("user_grade_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdEqualTo(String value) {
            addCriterion("user_grade_id =", value, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdNotEqualTo(String value) {
            addCriterion("user_grade_id <>", value, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdGreaterThan(String value) {
            addCriterion("user_grade_id >", value, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdGreaterThanOrEqualTo(String value) {
            addCriterion("user_grade_id >=", value, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdLessThan(String value) {
            addCriterion("user_grade_id <", value, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdLessThanOrEqualTo(String value) {
            addCriterion("user_grade_id <=", value, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdLike(String value) {
            addCriterion("user_grade_id like", value, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdNotLike(String value) {
            addCriterion("user_grade_id not like", value, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdIn(List<String> values) {
            addCriterion("user_grade_id in", values, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdNotIn(List<String> values) {
            addCriterion("user_grade_id not in", values, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdBetween(String value1, String value2) {
            addCriterion("user_grade_id between", value1, value2, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andUserGradeIdNotBetween(String value1, String value2) {
            addCriterion("user_grade_id not between", value1, value2, "userGradeId");
            return (Criteria) this;
        }

        public Criteria andAppIdIsNull() {
            addCriterion("app_id is null");
            return (Criteria) this;
        }

        public Criteria andAppIdIsNotNull() {
            addCriterion("app_id is not null");
            return (Criteria) this;
        }

        public Criteria andAppIdEqualTo(String value) {
            addCriterion("app_id =", value, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdNotEqualTo(String value) {
            addCriterion("app_id <>", value, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdGreaterThan(String value) {
            addCriterion("app_id >", value, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdGreaterThanOrEqualTo(String value) {
            addCriterion("app_id >=", value, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdLessThan(String value) {
            addCriterion("app_id <", value, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdLessThanOrEqualTo(String value) {
            addCriterion("app_id <=", value, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdLike(String value) {
            addCriterion("app_id like", value, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdNotLike(String value) {
            addCriterion("app_id not like", value, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdIn(List<String> values) {
            addCriterion("app_id in", values, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdNotIn(List<String> values) {
            addCriterion("app_id not in", values, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdBetween(String value1, String value2) {
            addCriterion("app_id between", value1, value2, "appId");
            return (Criteria) this;
        }

        public Criteria andAppIdNotBetween(String value1, String value2) {
            addCriterion("app_id not between", value1, value2, "appId");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeIsNull() {
            addCriterion("user_grade_type is null");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeIsNotNull() {
            addCriterion("user_grade_type is not null");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeEqualTo(String value) {
            addCriterion("user_grade_type =", value, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeNotEqualTo(String value) {
            addCriterion("user_grade_type <>", value, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeGreaterThan(String value) {
            addCriterion("user_grade_type >", value, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeGreaterThanOrEqualTo(String value) {
            addCriterion("user_grade_type >=", value, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeLessThan(String value) {
            addCriterion("user_grade_type <", value, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeLessThanOrEqualTo(String value) {
            addCriterion("user_grade_type <=", value, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeLike(String value) {
            addCriterion("user_grade_type like", value, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeNotLike(String value) {
            addCriterion("user_grade_type not like", value, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeIn(List<String> values) {
            addCriterion("user_grade_type in", values, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeNotIn(List<String> values) {
            addCriterion("user_grade_type not in", values, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeBetween(String value1, String value2) {
            addCriterion("user_grade_type between", value1, value2, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeTypeNotBetween(String value1, String value2) {
            addCriterion("user_grade_type not between", value1, value2, "userGradeType");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameIsNull() {
            addCriterion("user_grade_name is null");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameIsNotNull() {
            addCriterion("user_grade_name is not null");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameEqualTo(String value) {
            addCriterion("user_grade_name =", value, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameNotEqualTo(String value) {
            addCriterion("user_grade_name <>", value, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameGreaterThan(String value) {
            addCriterion("user_grade_name >", value, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameGreaterThanOrEqualTo(String value) {
            addCriterion("user_grade_name >=", value, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameLessThan(String value) {
            addCriterion("user_grade_name <", value, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameLessThanOrEqualTo(String value) {
            addCriterion("user_grade_name <=", value, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameLike(String value) {
            addCriterion("user_grade_name like", value, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameNotLike(String value) {
            addCriterion("user_grade_name not like", value, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameIn(List<String> values) {
            addCriterion("user_grade_name in", values, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameNotIn(List<String> values) {
            addCriterion("user_grade_name not in", values, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameBetween(String value1, String value2) {
            addCriterion("user_grade_name between", value1, value2, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andUserGradeNameNotBetween(String value1, String value2) {
            addCriterion("user_grade_name not between", value1, value2, "userGradeName");
            return (Criteria) this;
        }

        public Criteria andGradeAmountIsNull() {
            addCriterion("grade_amount is null");
            return (Criteria) this;
        }

        public Criteria andGradeAmountIsNotNull() {
            addCriterion("grade_amount is not null");
            return (Criteria) this;
        }

        public Criteria andGradeAmountEqualTo(Double value) {
            addCriterion("grade_amount =", value, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeAmountNotEqualTo(Double value) {
            addCriterion("grade_amount <>", value, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeAmountGreaterThan(Double value) {
            addCriterion("grade_amount >", value, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeAmountGreaterThanOrEqualTo(Double value) {
            addCriterion("grade_amount >=", value, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeAmountLessThan(Double value) {
            addCriterion("grade_amount <", value, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeAmountLessThanOrEqualTo(Double value) {
            addCriterion("grade_amount <=", value, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeAmountIn(List<Double> values) {
            addCriterion("grade_amount in", values, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeAmountNotIn(List<Double> values) {
            addCriterion("grade_amount not in", values, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeAmountBetween(Double value1, Double value2) {
            addCriterion("grade_amount between", value1, value2, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeAmountNotBetween(Double value1, Double value2) {
            addCriterion("grade_amount not between", value1, value2, "gradeAmount");
            return (Criteria) this;
        }

        public Criteria andGradeRebateIsNull() {
            addCriterion("grade_rebate is null");
            return (Criteria) this;
        }

        public Criteria andGradeRebateIsNotNull() {
            addCriterion("grade_rebate is not null");
            return (Criteria) this;
        }

        public Criteria andGradeRebateEqualTo(Double value) {
            addCriterion("grade_rebate =", value, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andGradeRebateNotEqualTo(Double value) {
            addCriterion("grade_rebate <>", value, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andGradeRebateGreaterThan(Double value) {
            addCriterion("grade_rebate >", value, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andGradeRebateGreaterThanOrEqualTo(Double value) {
            addCriterion("grade_rebate >=", value, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andGradeRebateLessThan(Double value) {
            addCriterion("grade_rebate <", value, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andGradeRebateLessThanOrEqualTo(Double value) {
            addCriterion("grade_rebate <=", value, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andGradeRebateIn(List<Double> values) {
            addCriterion("grade_rebate in", values, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andGradeRebateNotIn(List<Double> values) {
            addCriterion("grade_rebate not in", values, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andGradeRebateBetween(Double value1, Double value2) {
            addCriterion("grade_rebate between", value1, value2, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andGradeRebateNotBetween(Double value1, Double value2) {
            addCriterion("grade_rebate not between", value1, value2, "gradeRebate");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectIsNull() {
            addCriterion("spread_direct is null");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectIsNotNull() {
            addCriterion("spread_direct is not null");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectEqualTo(Double value) {
            addCriterion("spread_direct =", value, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectNotEqualTo(Double value) {
            addCriterion("spread_direct <>", value, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectGreaterThan(Double value) {
            addCriterion("spread_direct >", value, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectGreaterThanOrEqualTo(Double value) {
            addCriterion("spread_direct >=", value, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectLessThan(Double value) {
            addCriterion("spread_direct <", value, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectLessThanOrEqualTo(Double value) {
            addCriterion("spread_direct <=", value, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectIn(List<Double> values) {
            addCriterion("spread_direct in", values, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectNotIn(List<Double> values) {
            addCriterion("spread_direct not in", values, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectBetween(Double value1, Double value2) {
            addCriterion("spread_direct between", value1, value2, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadDirectNotBetween(Double value1, Double value2) {
            addCriterion("spread_direct not between", value1, value2, "spreadDirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectIsNull() {
            addCriterion("spread_indirect is null");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectIsNotNull() {
            addCriterion("spread_indirect is not null");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectEqualTo(Double value) {
            addCriterion("spread_indirect =", value, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectNotEqualTo(Double value) {
            addCriterion("spread_indirect <>", value, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectGreaterThan(Double value) {
            addCriterion("spread_indirect >", value, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectGreaterThanOrEqualTo(Double value) {
            addCriterion("spread_indirect >=", value, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectLessThan(Double value) {
            addCriterion("spread_indirect <", value, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectLessThanOrEqualTo(Double value) {
            addCriterion("spread_indirect <=", value, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectIn(List<Double> values) {
            addCriterion("spread_indirect in", values, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectNotIn(List<Double> values) {
            addCriterion("spread_indirect not in", values, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectBetween(Double value1, Double value2) {
            addCriterion("spread_indirect between", value1, value2, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadIndirectNotBetween(Double value1, Double value2) {
            addCriterion("spread_indirect not between", value1, value2, "spreadIndirect");
            return (Criteria) this;
        }

        public Criteria andSpreadPointIsNull() {
            addCriterion("spread_point is null");
            return (Criteria) this;
        }

        public Criteria andSpreadPointIsNotNull() {
            addCriterion("spread_point is not null");
            return (Criteria) this;
        }

        public Criteria andSpreadPointEqualTo(Double value) {
            addCriterion("spread_point =", value, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andSpreadPointNotEqualTo(Double value) {
            addCriterion("spread_point <>", value, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andSpreadPointGreaterThan(Double value) {
            addCriterion("spread_point >", value, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andSpreadPointGreaterThanOrEqualTo(Double value) {
            addCriterion("spread_point >=", value, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andSpreadPointLessThan(Double value) {
            addCriterion("spread_point <", value, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andSpreadPointLessThanOrEqualTo(Double value) {
            addCriterion("spread_point <=", value, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andSpreadPointIn(List<Double> values) {
            addCriterion("spread_point in", values, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andSpreadPointNotIn(List<Double> values) {
            addCriterion("spread_point not in", values, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andSpreadPointBetween(Double value1, Double value2) {
            addCriterion("spread_point between", value1, value2, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andSpreadPointNotBetween(Double value1, Double value2) {
            addCriterion("spread_point not between", value1, value2, "spreadPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointIsNull() {
            addCriterion("trans_point is null");
            return (Criteria) this;
        }

        public Criteria andTransPointIsNotNull() {
            addCriterion("trans_point is not null");
            return (Criteria) this;
        }

        public Criteria andTransPointEqualTo(Double value) {
            addCriterion("trans_point =", value, "transPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointNotEqualTo(Double value) {
            addCriterion("trans_point <>", value, "transPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointGreaterThan(Double value) {
            addCriterion("trans_point >", value, "transPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointGreaterThanOrEqualTo(Double value) {
            addCriterion("trans_point >=", value, "transPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointLessThan(Double value) {
            addCriterion("trans_point <", value, "transPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointLessThanOrEqualTo(Double value) {
            addCriterion("trans_point <=", value, "transPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointIn(List<Double> values) {
            addCriterion("trans_point in", values, "transPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointNotIn(List<Double> values) {
            addCriterion("trans_point not in", values, "transPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointBetween(Double value1, Double value2) {
            addCriterion("trans_point between", value1, value2, "transPoint");
            return (Criteria) this;
        }

        public Criteria andTransPointNotBetween(Double value1, Double value2) {
            addCriterion("trans_point not between", value1, value2, "transPoint");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}